//package com.graducationdesign.springboot.config;
//
//import com.alibaba.druid.pool.DruidDataSource;
//import com.alibaba.druid.support.http.StatViewServlet;
//import com.alibaba.druid.support.http.WebStatFilter;
//import org.springframework.boot.context.properties.ConfigurationProperties;
//import org.springframework.boot.web.servlet.FilterRegistrationBean;
//import org.springframework.boot.web.servlet.ServletRegistrationBean;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import javax.servlet.Filter;
//import javax.sql.DataSource;
//import java.sql.SQLException;
//import java.util.Arrays;
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * @author Mr.zhneg
// * @create 2019-11-15-20:34
// */
//我们可以使用start来使用，不需要自定义数据源
//@Configuration
//public class DruidConfig {
//
////绑定数据源配置
//    @ConfigurationProperties(prefix = "spring.datasource")
//    @Bean
//    public DataSource druid() throws SQLException {
//        DruidDataSource druidDataSource = new DruidDataSource();
//        //加入监控功能
////        druidDataSource.setFilters("stat,wall");
//        return druidDataSource;
//    }
//
//    /**
//     * 配置一个druid的监控
//     * 1. 配置一个druid的后台 管理servlet
//     * 2. 配置一个druid的filter
//     *
//     */
//    // 1. 配置一个druid的后台管理servlet
//    @Bean
//    public ServletRegistrationBean statViewServlet() {
//        //注意：请求是 /druid/*
//        ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
//
//        //设置初始化参数值
//        Map<String, String> initParam = new HashMap<>();
//
//        //访问的用户密码
//        initParam.put(StatViewServlet.PARAM_NAME_USERNAME, "root");
//        initParam.put(StatViewServlet.PARAM_NAME_PASSWORD, "root");
//
//        //如果不写，则默认所有ip都可以访问
//        initParam.put(StatViewServlet.PARAM_NAME_ALLOW, "");
////        禁止访问的ip
//        initParam.put(StatViewServlet.PARAM_NAME_DENY, "192.168.10.1");
//
//        bean.setInitParameters(initParam);
//
//        return bean;
//    }
//
//    //2. 配置一个druid的filter 用于采集web-jdbc关联监控数据
//    @Bean
//    public FilterRegistrationBean webStatFilter() {
//        FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<>();
//        bean.setFilter(new WebStatFilter());
//
////        配置初始化参数
//        Map<String, String> initPrams = new HashMap<>();
//
////        排除请求
//        initPrams.put(WebStatFilter.PARAM_NAME_EXCLUSIONS, "*.js,*.css,/druid/*,*.ico,*.png,*.jpg");
//        bean.setInitParameters(initPrams);
//
//        //设置拦截请求
//        bean.setUrlPatterns(Arrays.asList("/*"));
//        return bean;
//    }
//}
